#include "font.h"

#include <string.h>
#include <stdio.h>
#include <memory.h>
#include <stdlib.h>

typedef struct _UFO_Font_Internal
{
	char *facename;
	int size;
    int bold;
	UFO_Handle handle;
}UFO_Font_Internal, *PUFO_Font_Internal;

UFO_Font ufoFontCreate(const char *facename, int size, int bold)
{
	PUFO_Font_Internal pFont = 0;
	pFont = malloc(sizeof(UFO_Font_Internal));
	memset(pFont, 0, sizeof(PUFO_Font_Internal));
	
    pFont->bold = bold;
	pFont->size = size;
	pFont->facename = malloc(strlen(facename)+1);
	strcpy(pFont->facename, facename);

	pFont->handle = ufoCreateHandle(UFO_ID_TEXTURE, pFont);
	return (UFO_Font)pFont->handle;
}

const char* ufoFontGetFaceName(UFO_Font font)
{
	PUFO_Font_Internal pFont = ufoObjectFromHandle((UFO_Handle)font);
	if (pFont) {
		return pFont->facename;
	}
	return 0;
}

int ufoFontGetSize(UFO_Font font)
{
	PUFO_Font_Internal pFont = ufoObjectFromHandle((UFO_Handle)font);
	if (pFont) {
		return pFont->size;
	}
	return 0;
}

int ufoFontGetBold(UFO_Font font)
{
 	PUFO_Font_Internal pFont = ufoObjectFromHandle((UFO_Handle)font);
	if (pFont) {
		return pFont->bold;
	}
	return 0;
}

